home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / program / gemxx19.zoo / gem++19 / include / geme.h < prev    next >
C/C++ Source or Header  |  1993-04-28  |  2KB  |  67 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. //  GEMevent
  4. //
  5. //  A GEMevent is a combination of values that represents and event.
  6. //  it also provides the functionality for collecting events from GEM.
  7. //
  8. //  This file is Copyright 1992,1993 by Warwick W. Allison.
  9. //  This file is part of the gem++ library.
  10. //  You are free to copy and modify these sources, provided you acknowledge
  11. //  the origin by retaining this notice, and adhere to the conditions
  12. //  described in the file COPYING.LIB.
  13. //
  14. /////////////////////////////////////////////////////////////////////////////
  15.  
  16. #ifndef GEMe_h
  17. #define GEMe_h
  18.  
  19. #include <bool.h>
  20. #include <gemfast.h>
  21.  
  22.  
  23. class GEMevent
  24. {
  25.     int ev_which;
  26.     int btn_clicks,btn_state,btn_mask,btn_not;
  27.     int rf[2];
  28.     int r[2][4];
  29.     int msg[32];
  30.     int interval;
  31.     int mx,my,btn;
  32.     int meta,key,clicks;
  33.  
  34. public:
  35.     GEMevent(); // Current button state
  36.     GEMevent(int x, int y, int button=0, int clicks=1); // Simulated clicks
  37.     GEMevent(int key); // Simulated key
  38.  
  39.     void Get(int ev_flags); // Use MU_* constants in gemfast.h
  40.  
  41.     void Button(int mask, int state, bool not=FALSE)    { btn_mask=mask; btn_state=state; btn_not=not; }
  42.     void Rectangle1(int x, int y, int w, int h, bool out_not_in)    { rf[0]=out_not_in; r[0][0]=x; r[0][1]=y; r[0][2]=w; r[0][3]=h; }
  43.     void Rectangle2(int x, int y, int w, int h, bool out_not_in)    { rf[1]=out_not_in; r[1][0]=x; r[1][1]=y; r[1][2]=w; r[1][3]=h; }
  44.     void Rectangle(int x, int y, int w, int h, bool out_not_in, int R=1)    { rf[R-1]=out_not_in; r[R-1][0]=x; r[R-1][1]=y; r[R-1][2]=w; r[R-1][3]=h; }
  45.     void Interval(int i)    { interval=i; }
  46.     int Interval() const        { return interval; }
  47.  
  48.     bool Keyboard() const    { return !!(ev_which&MU_KEYBD); }
  49.     bool Button() const        { return !!(ev_which&MU_BUTTON); }
  50.     bool Rectangle1() const    { return !!(ev_which&MU_M1); }
  51.     bool Rectangle2() const    { return !!(ev_which&MU_M2); }
  52.     bool Rectangle() const    { return !!(ev_which&(MU_M1|MU_M2)); }
  53.     bool Message() const    { return !!(ev_which&MU_MESAG); }
  54.     bool Timer() const        { return !!(ev_which&MU_TIMER); }
  55.  
  56.     int X() const            { return mx; }
  57.     int Y() const            { return my; }
  58.  
  59.     int Message(int i) const    { return msg[i]; }
  60.     int Button(int b) const    { return btn&(1<<b); }
  61.     int Clicks() const        { return clicks; }
  62.     int Meta() const        { return meta; }
  63.     int Key() const            { return key; }
  64. };
  65.  
  66. #endif
  67.